package com.eportal.service;

import com.alibaba.fastjson.JSONObject;
import com.eportal.domain.Sysopt;
import com.eportal.entity.TCommodityEntity;
import com.eportal.params.background.mall.Tcommodity.CommodityParam;
import com.eportal.params.background.mall.Tcommodity.CommodityParamList;
import com.eportal.vo.controller.background.commodity.QueryStatusNumsVO;
import com.framework.jqgrid.JqGridPager;
import com.framework.jqgrid.PageEntity;
import com.github.pagehelper.PageInfo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;


public interface TCommodityService extends BaseService<TCommodityEntity>{

	List<Map<String, Object> > listView(JqGridPager jqGridPager);

	List<Map<String, Object> > logList(JqGridPager jqGridPager);

	List<Map<String, Object> > cmdDetail(Long sid);

	Map<String, Object> offMethod(Long sid, Sysopt opt) throws Exception;

	Map<String, Object> addRedEnv(Sysopt opt, String rName, BigDecimal Amount, int totalNum, int reTimes, String effectiveDate, String period1, String period2, String isAllday,
			 String isSendAll, String agentCodes, String communityIds, String buildingIds, String unitIds, String roomIds, String mainReType, String cUrl, String adPicture, String reqPreUrl);

	Map<String, Object> activeRedenv(String mainId);

    com.eportal.domain.TCommodity get(Long id);

    String getOrderBatchNummber() throws Exception;

	List<Map<String, String>> listBySql(String string);

	List<Map<String, Object>> queryBySql(String unit, String budingid);

	/**
	 * 分页查询
	 * @author Saber
	 * @Date 2017/7/14 下午12:39
	 * @param pageEntity 分页对象
	 * @param commodityParamList 查询参数
	 * @param optId 			 当前用户id
	 * @param ownerId 			 当前用户所属id
	 */
	PageInfo<TCommodityEntity> queryForPage(PageEntity pageEntity,CommodityParamList commodityParamList,Long optId,String ownerId);

	/**
	 * 查询商品各状态数量
	 * @author Saber
	 * @Date 2017/7/24 下午1:06
	 * @param optId		当前用户id
	 * @param ownerId	当前用户所属id
	 * @return
	 */
	QueryStatusNumsVO queryStatusNums(Long optId,String ownerId);

	/**
	 * 商品添加
	 * @Author Saber
	 * @Date 2017/7/10 下午1:34
	 * @param param     请求参数
	 * @param optId     当前用户id
     * @param ownerId   当前用户所属id
	 */
    JSONObject commodityAdd(CommodityParam param,Long optId,String ownerId) throws Exception;

	/**
	 * 商品上架
	 * @author Saber
	 * @Date 2017/7/24 上午11:18
	 * @param sIds 		商品id 以,分割
	 * @param optId 	当前用户id
	 * @param ownerId   当前用户所属id
	 * @return
	 */
	JSONObject up(String sIds,Long optId,String ownerId);

	/**
	 * 商品下架
	 * @author Saber
	 * @Date 2017/7/24 上午11:18
	 * @param sIds 		商品id 以,分割
	 * @param optId 	当前用户id
	 * @param ownerId   当前用户所属id
	 * @return
	 */
	JSONObject down(String sIds,Long optId,String ownerId);

	/**
	 * 商品删除
	 * @author Saber
	 * @Date 2017/7/24 上午11:18
	 * @param sIds 		商品id 以,分割
	 * @param optId 	当前用户id
	 * @param ownerId 	当前用户所属id
	 * @return
	 */
	JSONObject delete(String sIds,Long optId,String ownerId);
}
